Im Rahmen einer Seminararbeit wurden eine Literaturrecherche auf Pubmed durchgeführt. Unterschiedliche Search-String-Kombinationen wurden mit R automatisch ausgeführt. Dadurch haben wir ein Mengengerüst erhalten, um die Bedeutung von Subthemen besser einzuschätzen und unsere eigene Such-Strategie zu optimieren.
Das Poster zu unserer Seminararbeit findet ihr hier.
Das R-Skript hatte ich erstellt, als ich noch keine Erfahrung mit API hatte. Heute würde ich das Skript vermutlich anders (eleganter) gestalten und in den nächsten Wochen sicherlich auch als verbesserte Variante ausprobieren.
Vorbereitung
Als erstes wurde die API-Adresse als String nachgebildet mit jeweils zwei Begriffen, die im Titel oder im Abstract auf Pubmed gesucht wurden.
library(xml2)
Warning: Paket 'xml2' wurde unter R Version 4.3.2 erstellt
library(tidyr)
Warning: Paket 'tidyr' wurde unter R Version 4.3.2 erstellt
library(knitr)
Warning: Paket 'knitr' wurde unter R Version 4.3.2 erstellt
# set static values of the urlurl_part_1 <-"https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=("url_part_3 <-"[Title/Abstract])AND("url_part_5 <-"[Title/Abstract])"# empty vector to store the Count-valuesresult_vector <-integer()search_string_combination_1 <-character()search_string_combination_2 <-character()# search-stringssearch_string_1 <-c("COPD", "asthma", "diabetes", "heart", "hypertension", "ophthalmology"#, "surgery", "covid", "rehabilitation", "chronic", "acute", "icu")search_string_2 <-c("telemedicine","telehealth","telemonitoring", "remote")
Bis hierhin wurde noch keine Pubmed-Abfrage durchgeführt.
Abfrage auf Pubmed
In einem doppelten Loop wurden die Such-String-Kombinationen mit paste0() zusammengesetzt, die URL aufgerufen und die Anzahl Treffer (“Count”) extrahiert.
Der doppelte Loop und die ursprünglichen Pubmed-Abfragen führten zu 205 unterschiedlichen Such-String-Kombinationen. Bis die Daten geladen wurden, dauert es knapp 2 Minuten. Das tönt zwar lange, aber geht schneller, als die Suchen manuell durchzuführen. Im Beispiel oben habe ich die Such-String-Kombinationen nun reduziert, sodass das Deployen schneller vonstattengeht.
Dennoch sehe ich noch Verbesserungspotential in meinem Skript. Das nehme ich mir für die nächste Zeit vor…